package com.wgy.day39.Junit单元测试;
/*
测试分类:
   1.黑盒测试:不需要写代码的,给输入值,看程序是否能够输出期望的值
   2.白盒测试:需要写代码的,关注程序具体的执行流程
Junit单元测试:使用白盒测试
步骤:1.定义一个测试类
       建议:
           测试类名:被测试的类名Test
           包名:xxx.xxx.xxTest
     2.定义测试的方法:可以独立运行
        建议:
           方法名:test测试的方法名
           返回值:void
           参数列表:空参
     3.给方法加@Test注释
     4.导入Junit依赖环境
判定结果:
     红色:失败
     绿色:成功
     一般使用断言操作来处理结果
     Assert.assertEquals(期望的结果,运算的结果);
补充2个注解:
      @Before:修饰的方法会在测试方法之前被自动执行
      @After:修饰的方法会在测试方法执行之后自动被执行

*/
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {
    //初始化方法:用于资源的申请,所有测试方法在执行之前都会先执行该方法
    @Before
    public void init(){
        System.out.println("init...");
    }

    //释放资源的方法:用于释放资源,在所有测试方法在执行之后都会自动执行该方法
    @After
    public void close(){
        System.out.println("close");
    }


    //测试add方法
    @Test
    public void testAdd() {
        //System.out.println("我被执行啦");
        //1.创建计算器对象
        Calculator c = new Calculator();

        //2.调用add方法
        int result = c.add(1, 2);
        //System.out.println(result);

        //3.断言 Assert 我断言这个结果是3
        Assert.assertEquals(3,result);

    }

    @Test
    public void testSub() {
        //1.创建计算器对象
        Calculator c = new Calculator();
        //2.调用sub方法
        int result2 = c.sub(1, 2);
        //3.断言 Assert 我断言这个结果是3
        Assert.assertEquals(-1,result2);
        System.out.println("sub方法被执行啦");
    }


}
